﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIM.Geo.BE;
using System.Data;

namespace SIM.Geo.DA
{
    public class DACategoriaMuestraEspecial : Base
    {
        /// <summary>
        /// Devuelve la lista de categoria de MuestraEspeciales
        /// </summary>
        /// <returns></returns>
        public List<CategoriaMuestraEspecial> listarCategoriaMuestraEspecial()
        {
            return this.Context.CategoriaMuestraEspecial.ToList();
        }

        /// <summary>
        /// Método para insertar un categoria de MuestraEspecial
        /// </summary>
        /// <param name="CategoriaMuestraEspecial"></param>
        /// <returns></returns>
        public int InsertarCategoriaMuestraEspecial(CategoriaMuestraEspecial categoriaMuestraEspecial)
        {
            this.Context.CategoriaMuestraEspecial.AddObject(categoriaMuestraEspecial);
            this.Context.SaveChanges();
            return categoriaMuestraEspecial.CodigoCategoriaMuestraEspecial;
        }
        /// <summary>
        /// Método para modificar un categoria de MuestraEspecial
        /// </summary>
        /// <param name="CategoriaMuestraEspecial"></param>
        public void ModificarCategoriaMuestraEspecial(CategoriaMuestraEspecial categoriaMuestraEspecial)
        {
            this.Context.CategoriaMuestraEspecial.Attach(categoriaMuestraEspecial);
            this.Context.ObjectStateManager.ChangeObjectState(categoriaMuestraEspecial, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar categoria de MuestraEspecial
        /// </summary>
        /// <param name="CategoriaMuestraEspecial"></param>
        public void EliminarCategoriaMuestraEspecial(CategoriaMuestraEspecial categoriaMuestraEspecial)
        {
            this.Context.CategoriaMuestraEspecial.DeleteObject(categoriaMuestraEspecial);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que busca por nombre categoria de MuestraEspecial
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<CategoriaMuestraEspecial> BuscarCategoriaMuestraEspecial(string nombre)
        {
            return this.Context.CategoriaMuestraEspecial.Where(x => x.Descripcion.Equals(nombre)).ToList();
        }
        /// <summary>
        /// Método que devuelve categoria de MuestraEspecial por codigo
        /// </summary>
        /// <param name="codigoCategoriaMuestraEspecial"></param>
        /// <returns></returns>
        public CategoriaMuestraEspecial ObtenerCategoriaMuestraEspecial(int codigoCategoriaMuestraEspecial)
        {
            return this.Context.CategoriaMuestraEspecial.Where(x => x.CodigoCategoriaMuestraEspecial == codigoCategoriaMuestraEspecial).FirstOrDefault();
        }
        /// <summary>
        /// Listar categoriamuestraespecial por codigo
        /// </summary>
        /// <param name="codigoCategoria"></param>
        /// <returns></returns>
        public List<CategoriaMuestraEspecial> ListarCategoriaPorCategoria(short codigoCategoria)
        {
            return this.Context.CategoriaMuestraEspecial.Where(x => x.CodigoCategoriaMuestraEspecial.Equals(codigoCategoria)).ToList();

        }
    }
}
